Method and apparatus for local advertising

ABSTRACT

A method and apparatus for local advertising. Internet Service Providers (ISPs) or proxies owned by an ISP insert advertisements transmitted from a web host to a client. The advertisement may be stored in the proxy&#39;s cache or may be retrieved from a web server for an advertiser. By providing the ISP with the ability to insert the advertisement, advertisements appear on small web sites that do not normally attract advertisers. Additionally, due to the number of advertisements placed by an ISP, small advertisers may have their advertisement appear in connection with frequently used web sites. One or more embodiments of the invention provide for an ISP to collect and store demographic information such as the user&#39;s age, residence, credit history, etc. Additionally, stored information may include web sites the user has accessed, time spent on each web site, and any searches performed by the user. The profile information may be utilized by the proxy to conduct targeted advertising and to associate a cost with certain demographic information. The profile information may be evaluated by the ISP for advertisement insertion. Alternatively, the profile information may be forwarded to an advertiser or advertising agency that evaluates and forwards back an advertisement for the proxy to transmit to the user.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to the field of computer software, and, morespecifically, to advertising on the internet.

Portions of the disclosure of this patent document contain material thatis subject to copyright protection. The copyright owner has no objectionto the facsimile reproduction by anyone of the patent document or thepatent disclosure as it appears in the Patent and Trademark Office fileor records, but otherwise reserves all copyright rights whatsoever. Sun,Sun Microsystems, the Sun logo, Solaris, Java, JavaOS, JavaStation,HotJava Views and all Java-based trademarks and logos are trademarks orregistered trademarks of Sun Microsystems, Inc. in the United States andother countries.

2. Background Art

In a computer network environment and the internet, advertising isincreasingly utilized by owners of web sites (referred to as web hosts)as a revenue source and for the advertisers to gain publicity and website access. Web hosts sell advertising space on their web site anddistribute web pages including the advertisements to internet users orclients. It is desirable for advertisements to target specific audiencesand persons that may be interested in the specific good or service beingadvertised. Prior art advertising schemes poorly target audiences andcreate excessive internet traffic when retrieving and transmittingadvertisements. These problems can be understood by reviewing networks,internets, advertising and how they work.

Networks

In modern computing environments, it is commonplace to employ multiplecomputers or workstations linked together in a network to communicatebetween, and share data with, network users. A network also may includeresources, such as printers, modems, file servers, etc., and may alsoinclude services, such as electronic mail.

A network can be a small system that is physically connected by cables(a local area network or “LAN”), or several separate networks can beconnected together to form a larger network (a wide area network or“WAN”). Other types of networks include the internet, tel-com networks,the World Wide Web, intranets, extranets, wireless networks, and othernetworks over which electronic, digital, and/or analog data may becommunicated.

Computer systems sometimes rely on a server computer system to provideinformation to requesting computers on a network. When there are a largenumber of requesting computers, it may be necessary to have more thanone server computer system to handle the requests.

The Internet

The Internet is a worldwide network of interconnected computers. AnInternet client accesses a computer on the network via an Internetprovider. An Internet provider is an organization that provides a client(e.g., an individual or other organization) with access to the Internet(via analog telephone line or Integrated Services Digital Network line,for example). A client can, for example, read information from, downloada file from or send an electronic mail message to anothercomputer/client using the Internet.

To retrieve a file or service on the Internet, a client must search forthe file or service, make a connection to the computer on which the fileor service is stored, and download the file or service. Each of thesesteps may involve a separate application and access to multiple,dissimilar computer systems. The World Wide Web (WWW) was developed toprovide a simpler, more uniform means for accessing information on theInternet.

The components of the WWW include browser software, network links,servers. and WWW protocols. The browser software, or browser, is auser-friendly interface (i.e., front-end) that simplifies access to theInternet. A browser allows a client to communicate a request withouthaving to learn a complicated command syntax, for example. A browsertypically provides a graphical user interface (GUI) for displayinginformation and receiving input. Examples of browsers currentlyavailable include Mosaic, Netscape Navigator and Communicator, MicrosoftInternet Explorer, and Cello.

Information servers maintain the information on the WWW and are capableof processing a client request. Hypertext Transport Protocol (HTTP) isthe standard protocol for communication with an information server onthe WWW. HTTP has communication methods that allow clients to requestdata from a server and send information to the server.

To submit a request, the client contacts the HTTP server and transmitsthe request to the HTTP server. The request contains the communicationmethod requested for the transaction (e.g., GET an object from theserver or POST data to an object on the server). The HTTP serverresponds to the client by sending a status of the request and therequested information. The connection is then terminated between theclient and the HTTP server.

A client request therefore, consists of establishing a connectionbetween the client and the HTTP server, performing the request, andterminating the connection. The HTTP server does not retain anyinformation about the request after the connection has been terminated.HTTP is, therefore, a stateless protocol. That is, a client can makeseveral requests of an HTTP server, but each individual request istreated independent of any other request. The server has no recollectionof any previous request.

Instead of transmitting the information from the server that maintainsthe information, some systems utilize what is referred to as a proxy.Referring to FIG. 1, a proxy 102 is a server that carries out requeststransmitted to it (i.e., from client 100), keeping copies of fetcheddocuments or information for some time so that they can be accessed morequickly in the future, speeding up access for commonly requestedinformation. This maintaining of information and fetched documents bythe proxy 102 is referred to as caching and the information maintainedin the proxy 102 is referred to as a cache or proxy cache.

To protect information in internal computer networks from externalaccess, a firewall is utilized. A firewall is a mechanism that blocksaccess between the client and the server. To provide limited access toinformation, a proxy or proxy server may sit atop a firewall and act asa conduit, providing a specific connection for each network connection.Proxy software retains the ability to communicate with external sources,yet is trusted to communicate with the internal network. For example,proxy software may require a username and password to access certainsections of the internal network and completely block other sectionsfrom any external access.

An addressing scheme is employed to identify Internet resources (e.g.,HTTP server, file or program). This addressing scheme is called UniformResource Locator (URL). A URL contains the protocol to use whenaccessing the server (e.g., HTTP), the Internet domain name of the siteon which the server is running, the port number of the server, and thelocation of the resource in the file structure of the server.

The WWW uses a concept known as hypertext. Hypertext provides theability to create links within a document to move directly to otherinformation. To activate the link, it is only necessary to click on thehypertext link (e.g., a word or phrase). The hypertext link can be toinformation stored on a different site than the one that supplied thecurrent information. A URL is associated with the link to identify thelocation of the additional information. When the link is activated, theclient's browser uses the link to access the data at the site specifiedin the URL.

If the client request is for a file, the HTTP server locates the fileand sends it to the client. An HTTP server also has the ability todelegate work to gateway programs. The Common Gateway Interface (CGI)specification defines a mechanism by which HTTP servers communicate withgateway programs. A gateway program is referenced using a URL. The HTTPserver activates the program specified in the URL and uses CGImechanisms to pass program data sent by the client to the gatewayprogram. Data is passed from the server to the gateway program viacommand-line arguments, standard input, or environment variables. Thegateway program processes the data and returns its response to theserver using CGI (via standard input, for example). The server forwardsthe data to the client using the HTTP.

A browser displays information to a client/user as pages or documents(referred to as “web pages” or “web sites”). A language is used todefine the format for a page to be displayed in the WWW. The language iscalled Hypertext Markup Language (HTML). A WWW page is transmitted to aclient as an HTML document. The browser executing at the client parsesthe document and displays a page based on the information in the HTMLdocument.

HTML is a structural language that is comprised of HTML elements thatare nested within each other. An HTML document is a text file in whichcertain strings of characters, called tags, mark regions of the documentand assign special meaning to them. These regions are called HTMLelements. Each element has a name, or tag. An element can haveattributes that specify properties of the element. Blocks or componentsinclude unordered list, text boxes, check boxes, and radio buttons, forexample. Each block has properties such as name, type, and value. Thefollowing provides an example of the structure of an HTML document:

<HTML>

<HEAD>

. . . element(s) valid in the document head

</HEAD>

<BODY>

. . . element(s) valid in the document body

</BODY>

</HTML>

Each HTML element is delimited by the pair of characters “<” and “>”.The name of the HTML element is contained within the delimitingcharacters. The combination of the name and delimiting characters isreferred to as a marker, or tag. Each element is identified by itsmarker. In most cases, each element has a start and ending marker. Theending marker is identified by the inclusion of an another character,“/” that follows the “<” character.

HTML is a hierarchical language. With the exception of the HTML element,all other elements are contained within another element. The HTMLelement encompasses the entire document. It identifies the enclosed textas an HTML document. The HEAD element is contained within the HTMLelement and includes information about the HTML document. The BODYelement is contained within the HTML. The BODY element contains all ofthe text and other information to be displayed. Other HTML elements aredescribed in HTML reference manuals.

Advertising

In traditional media (e.g., television, radio, and newspaper), localadvertising is provided by radio stations, television stations, thedifferent newspaper editions, and different newspaper distributors. Thelocal advertisers target a sub-group, often defined geographically, ofthe audience for that media outlet. For example, a local newspaperdistributor for a metropolitan city newspaper (e.g., the HoustonChronicle or Los Angeles Times) may include advertising inserts andcoupons from local grocers and shopkeepers with the newspaper.

Online advertising on the internet has followed the advertising approachin traditional media. Advertising space on the internet is sold by webhosts to third parties (advertisers). Additionally, an advertisingagency may be hired by the advertiser to conduct internet advertising.

Advertising space on the internet often appears as a banner or icon on aweb page. Banners often range from ½-4 inches high and 4-8½ inches wide.The banner or icon may be an image, text, or an image with text.Additionally, the banner or icon may have a hyperlink to theadvertiser's web page. Thus, if a user clicks on an advertiser's banner,the user's browser will load the advertiser's web page.

Payment schemes for online advertising vary. For example, an advertisermay pay based on the number of times different users access a web site(referred to as hits or page impressions). Alternatively, an advertisermay only pay if a user clicks on the advertiser's banner or icon andviews the advertiser's web page (referred to as a click-through).Further, a web host may also receive payment based on any completedtransactions that result from a click through (e.g., the web hostreceives a percentage of the payment received by the advertiser from theuser) (referred to as referral commissions).

Advertising schemes attempt to target audiences that would most likelybe interested in the product or service being advertised. For example,the commercials aired in connection with cartoons on television oftenrelate to children's toys, cereal, or other items that children wouldutilize. Consequently, the more information known about a viewer or userof a particular web site, the more targeted an advertisement may be.

In existing internet advertising schemes, a web host often provides oneadvertisement that all clients or users view. Consequently, there is oneglobal advertisement that all users of the web site see. Such a globaladvertisement assumes a homogeneous interest by all users and does notprovide different advertisements based on different interests orcharacteristics of users.

Prior Art Advertising Schemes

One internet advertising scheme attempts to target specific audiencesbased on demographics. For example, a web site that provides informationabout a specific city (e.g., San Francisco) may attempt to capture localaudiences by placing advertisements for businesses located in or nearSan Francisco. Thus, advertising on a Yahoo-San Francisco bay web sitewould attempt to target a local San Francisco bay area audience.

Another advertising scheme bases the advertisement on input from theuser. For example, if a search for baby books were made on a searchengine such as Yahoo, the web host for Yahoo may display advertisementsrelating to baby merchandise such as strollers and high chairs.

Another advertising scheme accesses cookies stored on individual'sbrowsers to determine the types of web sites that have been accessed.Cookies are small pieces of information that can later be read back froma browser. When a web site is accessed, a cookie is sent by the web siteidentifying itself to the web browser. Cookies are stored by the browserand may be read back by any server that desires to access the cookies ata later date. Based on the information retrieved from the cookies, alocal advertisement targeted to the specific user's interests (based onthe web sites that user has accessed or retrieved a cookie from) isprovided. Alternatively, the advertising scheme may evaluate the HTTPreferring page information. To prevent this information from beingdistributed or used in any manner, software is available that enablesusers to strip off cookies or HTTP referring page information. Further,the information collected only pertains to the small set of sites whichthe advertiser has a business relationship, either directly orindirectly through an advertisement network.

Another advertising scheme attempts to guess the geographic location ofa user based on the client's internet protocol (IP) address. Whenaccessing the internet, individual clients are differentiated from eachother by a unique number referred to as an IP address. In thisadvertising scheme, a database is maintained by the web host thatcontains a mapping that provides a correspondence between each IPaddress to a modem phone number. The mappings are created by retrievingthe modem phone numbers and the different IP addresses that the modemphone numbers correspond to from internet service providers (ISP) (ISPsare companies that provide internet access to users). By searching thedatabase for the IP address, the web host or advertising company candeduce which modem phone number the user called in from. Based on themodem phone number and area code, the web host or advertising companycan deduce where geographically the user is from or what telephoneexchange the user is closest to. Consequently, the user is providedadvertisements based on the estimated geographic location of the user.

Each of the above advertising schemes relies on the insertion andtransmission of the advertisement by the web host. Additionally, eachadvertising scheme relies on information retrieved from the user (whichmay be modified by the user) or attempts to guess information about theuser. Consequently, advertising is not precisely targeted and thepremiums paid for “good demographics” and “precise targeting” are lower.

The above advertising schemes also create additional processing overheadfor the web host (for implementing an advertising scheme), require extrabandwidth to transmit the advertisement across the network to the user,and poorly target specific audiences. Further, due to the increasedoverhead and low hit count for small web sites, advertisers arereluctant to advertise on the smaller web sites. Additionally, due tothe high advertising costs for large and frequently used web sites,small businesses cannot afford to conduct advertising.

Advertising payment schemes do not provide for payment to the ISPs.Since ISPs do not benefit from the advertising, ISPs often do not cachethe advertisements (resulting in increased transmission time) andsoftware to strip off advertisements from web pages have appeared.Further, since payment schemes may be based on the number of hits, thehit count and number of page impressions must be determined. Techniquesfor checking and auditing the hit counts and number of page impressionsare primitive and primarily based on trusting the web host who mayinflate the numbers.

SUMMARY OF THE INVENTION

A method and apparatus for local advertising on the internet.Advertising is increasingly utilized by owners of web sites (referred toas web hosts) as a revenue source and for the advertisers to gainpublicity and web site access. Web hosts sell advertising space on theirweb site and distribute web pages including the advertisements tointernet users or clients. It is desirable for advertisements to targetspecific audiences and persons that may be interested in the specificgood or service being advertised. Prior art advertising schemes poorlytarget audiences and create excessive internet traffic when retrievingand transmitting advertisements.

According to one ore more embodiments of the invention, Internet ServiceProviders (ISPs) or proxies owned by an ISP insert advertisements thatare transmitted from a web host to a client. Additionally, any entitymay insert or replace an advertisement that is transmitted to a client.The inserted advertisement may be an advertisement that is stored in theproxy's cache or may be retrieved from a web server for an advertiser.By providing the ISP with the ability to insert the advertisement,advertisements appear on small web sites that do not normally attractadvertisers. Additionally, due to the number of advertisements placed byan ISP, small advertisers may have their advertisement appear inconnection with frequently used web sites.

In addition to inserting advertisements, one or more embodiments of theinvention provide for an ISP to collect and store information regardingparticular users in a user profile. The information may includedemographic information such as the user's age, residence, credithistory, etc. Additionally, the information may include the web sitesthat the user has accessed, the time spent on each web site, and anyinternet searches performed by the user.

The profile information may be utilized by the proxy to conduct targetedadvertising or the information may be provided to a web host so that theweb host may conduct targeted advertising. The profile information mayalso be utilized to associate a cost with certain demographicinformation. For example, if the profile information indicates that theuser is interested in automobiles, a premium may be charged to anautomobile advertiser. The profile information may be evaluated by theISP for advertisement insertion. Alternatively, the profile informationmay be forwarded to an advertiser or advertising agency that evaluatesand forwards back an advertisement for the proxy to transmit to theuser. Thus, the profile and demographic information is utilized toprecisely target advertisements to specific users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a prior art method for processing web pages.

FIG. 2 is a block diagram of one embodiment of a computer system capableof providing a suitable execution environment for one or moreembodiments of the invention.

FIG. 3 illustrates the relationship of an Online Profile ManagementSystem with a client, server, and proxy according to one or moreembodiments of the invention.

FIG. 4 demonstrates several schemes for placing or inserting anadvertisement into a web page according to one or more embodiments ofthe invention.

FIG. 5 illustrates advertisement insertion according to one or moreembodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention is a method and apparatus for local advertising on theinternet. In the following description, numerous specific details areset forth to provide a more thorough description of embodiments of theinvention. It is apparent, however, to one skilled in the art, that theinvention may be practiced without these specific details. In otherinstances, well known features have not been described in detail so asnot to obscure the invention.

Embodiment of Computer Execution Environment (Hardware)

An embodiment of the invention can be implemented as computer softwarein the form of computer readable code executed on a general purposecomputer such as computer 200 illustrated in FIG. 2, or in the form ofbytecode class files running on such a computer. A keyboard 210 andmouse 211 are coupled to a bi-directional system bus 218. The keyboardand mouse are for introducing user input to the computer system andcommunicating that user input to processor 213. Other suitable inputdevices may be used in addition to, or in place of, the mouse 211 andkeyboard 210. I/O (input/output) unit 219 coupled to bi-directionalsystem bus 218 represents such I/O elements as a printer, A/V(audio/video) I/O, etc.

Computer 200 includes a video memory 214, main memory 215 and massstorage 212, all coupled to bi-directional system bus 218 along withkeyboard 210, mouse 211 and processor 213. The mass storage 212 mayinclude both fixed and removable media, such as magnetic, optical ormagnetic optical storage systems or any other available mass storagetechnology. Bus 218 may contain, for example, thirty-two address linesfor addressing video memory 214 or main memory 215. The system bus 218also includes, for example, a 32-bit data bus for transferring databetween and among the components, such as processor 213, main memory215, video memory 214 and mass storage 212. Alternatively, multiplexdata/address lines may be used instead of separate data and addresslines.

In one embodiment of the invention, the processor 213 is amicroprocessor manufactured by Motorola, such as the 680X0 processor ora microprocessor manufactured by Intel, such as the 80X86, or Pentiumprocessor, or a SPARC microprocessor from Sun Microsystems, Inc.However, any other suitable microprocessor or microcomputer may beutilized. Main memory 215 is comprised of dynamic random access memory(DRAM). Video memory 214 is a dual-ported video random access memory.One port of the video memory 214 is coupled to video amplifier 216. Thevideo amplifier 216 is used to drive the cathode ray tube (CRT) rastermonitor 217. Video amplifier 216 is well known in the art and may beimplemented by any suitable apparatus. This circuitry converts pixeldata stored in video memory 214 to a raster signal suitable for use bymonitor 217. Monitor 217 is a type of monitor suitable for displayinggraphic images.

Computer 200 may also include a communication interface 220 coupled tobus 218. Communication interface 220 provides a two-way datacommunication coupling via a network link 221 to a local network 222.For example, if communication interface 220 is an integrated servicesdigital network (ISDN) card or a modem, communication interface 220provides a data communication connection to the corresponding type oftelephone line, which comprises part of network link 221. Ifcommunication interface 220 is a local area network (LAN) card,communication interface 220 provides a data communication connection vianetwork link 221 to a compatible LAN. Wireless links are also possible.In any such implementation, communication interface 220 sends andreceives electrical, electromagnetic or optical signals which carrydigital data streams representing various types of information.

Network link 221 typically provides data communication through one ormore networks to other data devices. For example, network link 221 mayprovide a connection through local network 222 to local server computer223 or to data equipment operated by an Internet Service Provider (ISP)224. ISP 224 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 225. Local network 222 and Internet 225 both useelectrical, electromagnetic or optical signals which carry digital datastreams. The signals through the various networks and the signals onnetwork link 221 and through communication interface 220, which carrythe digital data to and from computer 200, are exemplary forms ofcarrier waves transporting the information.

Computer 200 can send messages and receive data, including program code,through the network(s), network link 221, and communication interface220. In the Internet example, remote server computer 226 might transmita requested code for an application program through Internet 225, ISP224, local network 222 and communication interface 220.

The received code may be executed by processor 213 as it is received,and/or stored in mass storage 212, or other non-volatile storage forlater execution. In this manner, computer 200 may obtain applicationcode in the form of a carrier wave.

Application code may be embodied in any form of computer programproduct. A computer program product comprises a medium configured tostore or transport computer readable code, or in which computer readablecode may be embedded. Some examples of computer program products areCD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer harddrives, servers on a network, and carrier waves.

The computer systems described above are for purposes of example only.An embodiment of the invention may be implemented in any type ofcomputer system or programming or processing environment.

Embodiment of Software Apparatus for Local Advertising on the Internet

One or more embodiments of the invention provide for local advertisingon the internet. Advertisements and web pages are transmitted to a userfrom an ISP or intermediate proxy. The advertisements may be inserted(or existing advertisements may be replaced) by the ISP, by the webhost, or by a third party. When advertisement insertion is performed bythe web host, the specific advertisement inserted is based on userinformation such as demographic information or the user's preferences.Such user information is obtained by the ISP or intermediate proxy.Accordingly, one or more embodiments enable local advertising throughinformation maintained by an ISP or local advertisement insertion by anISP or intermediate proxy.

Internet Service Providers (ISP)

For most users to access the internet, an ISP is utilized. To utilize anISP, an off-line relationship between the user and the ISP isestablished wherein the user sets up an account with the ISP bysupplying the user's name, address, and other relevant information(e.g., credit card number for payment, credit rating, etc.). Inexchange, the ISP assigns a user name, password, and potentially astatic IP address (or a dynamic IP address if dial in access isutilized) to the user. Additionally, the ISP may obtain information forother off-line sources.

Proxies (as described above) are usually owned and provided by a user'sISP. To access the internet, the user establishes a connection with theISP or proxy. The user or client then requests a URL from a web server.The proxy intercepts the request, searches its cache for the requestedinformation and returns the information to the client if the informationis in the proxy's cache. If not in cache, the proxy communicates withthe web server, retrieves the information, and forwards the informationto the client.

Since the ISP or proxy is utilized to conduct all internet access, whena user views a web page or completes any transactions on the internet,each and every user action is processed through the ISP or a proxy ofthe ISP. Consequently, the ISP has the ability to maintain statistics onthe user and the user's internet viewing (referred to as userinformation or profile information) transparently to the user (withoutthe user's knowledge). More specifically, the ISP has the abilitymaintain a user's profile consisting of demographic information such asthe user's age, credit history, earnings, interests, purchases, thesites (URLs) the user has accessed, the amount of time spent on each andevery web site (URL), other user accesses (such as emails, newsreadings/postings, etc.), and information when the user posts data orconducts searches (e.g., from queries/messages from a web server).Additionally, due to the off-line business relationship between the userand the ISP, privacy concerns may be addressed (compared to the lack ofa business relationship with strangers). The collection and processingof user/client information is more fully described in co-pending U.S.patent application Ser. No. 09/192,806, entitled “Method and Apparatusfor Processing Client Information” filed on Nov. 16, 1998.

Profile Collection

Profile information may be collected and maintained by a proxy in anOnline Profile Management System. FIG. 3 demonstrates the relationshipof an Online Profile Management System 300 with a client 100, server104, and proxy 102. As described above, all URL requests, text, andother information is transmitted from client 100 to proxy 102. Proxy 102copies this information and stores it locally in a raw database 302.Thus, each time client 100 initiates a request for a URL, informationregarding the request is stored in raw database 302. Additionally, whena user executes a search on an internet search engine, the text of thesearch may be stored in raw database 302. One unique element that onlythe proxy or ISP has access to, is the time that a user spends on aparticular web site. Such time spent information may also be stored inraw database 302. Additionally, the proxy may use the time spentinformation and other information to filter out search engine robotsthat repetitively access links of a web page to add to the searchengine's database.

A profile 304 for each client is maintained in a Client Identification &Classification System. Profile 304 contains all information regarding aparticular client or user including information collected off-line suchas the user's name, residence, phone number, occupation, alternate emailaddress, etc. The information from the raw database 302 is transferredand organized in the profile 304. Profile 304 may then be merged withother information databases such as mailing lists, direct marketinglists and subscriptions, a user's credit history, and shopping clubinformation (e.g., if the user is a member of a market's shopping club,the information from the shopping club's database may be merged throughan agreement between Proxy 102 and the market). The profile may also betime sensitive and created in real time so that when a user executes asearch on an internet search engine, the search text is stored in theprofile immediately. Additionally, if the user is at a non-payment basedpublic terminal (e.g., at a library), the profile may be limited to theuser's recent history and information about the terminal and terminallocation may be utilized. Further, if the user is at a payment-basedpublic terminal, the client's address, credit card information, andrecent history as the user browses the internet may be utilized.

A profile is useful in determining the type of advertisement to displayto a user. For example, if the profile indicates that client 100executed a search for “flowers”, the advertiser may desire to transmit alocal flower shop advertisement to client 100. A profile may also beutilized to specifically target clients that utilize a competitor'sgoods or services. For example, if the profile maintains knowledge thatthe client accesses a Pizza Hut web site, the ISP can includeadvertisements for Round Table Pizza or Dominos Pizza on the user's nextweb access, even if this access is to a totally unrelated site. Further,if the profile indicates that the client has inquired about Burger KingJack in the Box, fast food, hamburgers, etc., the ISP can includeadvertisements for McDonalds or another competitor.

Advertisement Insertion

One or more embodiments of the invention provide for several schemes forplacing or inserting an advertisement into a web page. Three of theseschemes are demonstrated in FIGS. 4a-4 c.

In FIGS. 4a-4 c, client 400 requests a URL from web server 404 which isintercepted by proxy 402. Proxy 402 requests the URL from web server 404if the information is not in the cache of proxy 402.

Referring to FIG. 4a, if the advertisements are not included in theinformation provided by web server 404 to proxy 402, the informationprovided by web server 404 may include additional URL informationspecifying the advertisements for proxy 402 to fetch from the web serverfor the advertiser 406. Consequently, proxy 402 retrieves the necessaryadvertisement from the advertiser's web server 406. Subsequently, proxy402 forwards the information including the advertisements to client 400.

Alternatively, an advertiser (or web server for an advertiser) 406 mayspecify the type of customer/client 400 it is interested in and theamount of money it is willing to pay for such information. For example,advertiser 406 may state that it is interested in client 400's age andcredit rating. Specifically, advertiser 406 may be interested in clientsthat are (a) in the 18-35 age group (e.g., code=a1835); (b) live in oraround Palo Alto, Calif. (e.g., code=c35), and (c) have previouslyordered food on-line (e.g., code=of) and is willing to pay 10 cents forevery such client 400. When proxy 402 transmits the web request to webserver 404, advertiser 406's preferences may be forwarded to web server404. For example, proxy 402 may add the following to the URL request:“&proxy:code=a1835+c35+of:age=23+val2=AB” (or places the sameinformation in appropriately defined HTTP options). When server 404receives the URL request with the added information, server 404 may thenuse the added information to insert appropriate advertisements that ithas stored, to verify the customer demographics information, to providetailored content for the demographics, or for some other purpose. Thus,the ISP may receive payment based on the demographic information theyprovide.

Referring to the scheme demonstrated in FIG. 4b, client 400 requests aURL from web server 404 that is intercepted by proxy 402. Proxy 402retrieves the relevant information excluding the advertisements from webserver 404. In one or more embodiments, proxy 402 inserts advertisementsand forwards the completed package to client 400. In such an embodiment,multiple advertisements may be stored by proxy 402 in a database or thecache of proxy 402. These stored advertisements may be retrieved (fromweb server 406, for example) prior to the URL request from client 400 ormay be retrieved when the client URL request is received by proxy 402.Further, the advertisements may be purchased from another ISP ifdesired. By storing advertisements prior to receiving a URL request, aresponse may be provided more quickly to client 400 (the step ofretrieving an advertisement from web server 406 is eliminated) resultingin effective caching.

Alternatively, client 400 may be provided a web page with an empty slotdue to an IMG directive (a directive (as specified in the HTML of theweb page) to load an inline image stored on the server). Anadvertisement slot is the location and space in the web page where theadvertisement will be or is placed. An advertisement slot may alreadycontain an advertisement (referred to as an advertisement block) thatmay be replaced or may be an empty slot. When an empty slot istransmitted, client 400 attempts to retrieve information for the emptyslot. The retrieval may be intercepted by proxy 402 who may then insertan advertisement.

Referring to FIG. 4c, client 400 transmits a URL request to proxy 402which then retrieves the URL request excluding the advertisement blockfrom web server 404. To insert an advertisement, proxy 402 transmits theadvertisement slot characteristics and advertisement characteristics (asprovided by web server 404), profile, cost, or other information (storedas described above) to the advertiser's web server 406. For example,proxy 402 may inform web server 406 that the user that is requesting theURL has accessed numerous automobile sites or is shopping for anautomobile. Alternatively, proxy 402 may inform web server 406 that thecost for the advertisement is 10 cents. Web server 406 determines theadvertisement block to insert and informs proxy 402 (if proxy 402 hasbeen provided multiple advertisements in advance for cache storage) orforwards the advertisement to proxy 402. Further, in one or moreembodiments, multiple advertisements may fit within the advertisementslot provided

In addition or in combination with the options illustrated in FIGS. 4a,4 b, and 4 c, proxy 400 may initiate the local advertising by expressinginterest in inserting its own advertisement (that may or may not bestored in the proxy's cache) or inserting multiple advertisements to webserver 404. For example, proxy 402 may indicate an interest in placingan advertisement to web server 404. In response, web server 404 returnsan advertisement slot with a price to proxy 402 (in addition to therequested web page). In another embodiment, proxy 402 could indicate aninterest in inserting an advertisement along with a price it is willingto pay. Negotiations for the price may then continue as described indetail below. The advertisement pricing may be based on a number offactors including the number of advertisement that the proxy has or candisplay, the number of negotiable advertisement spots, the currentmarket history, and the history of previous price agreements with aparticular party. One or more embodiments of the invention set the priceequal to the most expensive advertisement price for the demographic. Theprice may then be adjusted by the opportunity cost that theadvertisement cannot be shown (or shown as often) or by other factorssuch as the past history, for example.

After obtaining the profile information and a set of potentialadvertisements that may be inserted, the proxy must determine whichparticular advertisement to insert for this particular user. In one ormore embodiments, a database that maps users to theirprofiles/preferences is utilized to access the profile information. Inone or more embodiments, a database contains a mapping of profiles orpreferences to a set of advertisements. In one or more embodiments, adatabase of advertisements with their prices is maintained.

Once desired databases are established, a policy for selecting theadvertisement to insert may be utilized. For example, the proxy mayimplement a policy that displays the most expensive advertisements for aparticular slot. In one or more embodiments, advertisements may berotated for the same user so that the same user is not always displayedthe same advertisement. In one or more embodiments, the advertisementmay be selected based on the number of advertisements placed by anadvertiser. For example, if Toyota has authorized 100 advertisementinserts and Nissan has authorized 100,000 advertisement inserts, theNissan advertisements may be utilized more frequently to save the Toyotaadvertisements for when the Nissan advertisements cannot be used (basedon the user's profile or other characteristic (e.g., limited browsercapability)).

In order to insert an advertisement, the size and characteristics of theadvertisement and the advertisement slot must be known by proxy 402.Proxy 402 is able to determine the characteristics of the advertisementslot (e.g., dimensions of the advertisement slot) based on theinformation transmitted from web server 404. In one or more embodiments,the characteristics of the advertisement and advertisement slot areencoded as part of the URL itself or around the URL (but not encoded aspart of the URL). In another embodiment, the characteristics of theadvertisement and advertisement slot are specified in tags of the HTML.In another embodiment, the characteristics of the advertisement and theadvertisement slot may be shipped as part of the HTTP headers (asdescribed above). The specifics of such tags are discussed in detailbelow. Alternatively, the type of advertisement to be inserted may bespecified by web server 404, the type of advertisement that cannot beinserted may be specified by web server 404, or the type ofadvertisement to be inserted may be left up to proxy 402.

In one or more embodiments, the price information for the advertisementslot may consist of multiple values with each price dependent on theadvertisement size and slot location (e.g., high on the web page v. theend of the page). Additionally, the price may vary depending on thenumber of advertisement slots that the proxy or web server purchases(e.g., a discount for volume advertisement placement) and on the numberof other third party advertisements that may be present on the page.

FIG. 5 illustrates advertisement insertion according to one or moreembodiments of the invention in connection with FIGS. 4a- 4 c. At step500, client 400 requests a URL from web server 404. At step 502, ISPproxy 402 intercepts the URL request. At step 503, proxy 402 searchesits cache for the specified web page. If the specified web page is notin cache, proxy 402 forwards the web page request to web server 404. Atstep 504, web server 404 transmits the specified web page to proxy 402.The transmission by web server 404 may include a determination regardingwhether to insert a global advertisement or to transmit a blankadvertisement slot for an advertisement insert by proxy 402. If a globaladvertisement is inserted, web server 404 may specify that the globaladvertisement cannot be stripped, removed, or replaced with a localadvertisement by proxy 402. Further, the transmission of a blank slotmay also include a specified price or restriction requirement for theadvertisement insertion. Thus, the web page transmitted may include aglobal advertisement inserted by the web host (in such a situation, webserver 404 may determine that it is more cost effective to insert aglobal advertisement than to rely on an advertisement insertion by proxy402). Alternatively, the transmission by web server 404 may exclude aglobal advertisement or provide a replaceable advertisement block due tothe lack of an advertising contract (with an advertiser), as a result ofa previously agreed upon blank slot for the proxy to insert anadvertisement, or as the result of a contract dynamically negotiated inreal time between proxy 402 and web server 404.

The dynamic negotiation between proxy 402 and web server 404 may becompleted in a single message-exchange wherein the initiator nameshis/her price and the other party agrees/disagrees. For example, in oneform of negotiation, ISP 402 may initiate the negotiation by offeringweb server 404 a certain sum of money if web server 404 returns a webpage with an empty advertisement slot (this may be passed by ISP 402 toweb server 404 in the initial HTTP request). In exchange, web server 404either returns a page with an empty slot to accept the contract, or doesnot include any empty slots to decline the contract. In another form ofnegotiation, web server 404 initiates the negotiations by returning apage with an empty advertisement slot or a replaceable advertisementblock and offering the ISP 402 the option of introducing a localadvertisement at a certain price (the URL where proxy 402 must go tofetch the real advertisement if it does not want to insert a localadvertisement at the listed price may also be provided by web server404). In exchange, if ISP 402 does not accept the offer, ISP 402 mayfetch the web site's advertising (the advertisement block) from webserver 404 (or web server 406 if the URL is provided to ISP 402).Alternatively, ISP 402 may specify the amount ISP 402 is willing to payto web server 404 for use of the advertisement slot (in which case, webserver 404 then responds to ISP 402 by accepting, declining, orproviding an alternative amount). Additional iterations may then ensueuntil an amount for the advertisement is agreed upon, or the negotiationis terminated by one party (e.g., by sending a page without an emptyadvertising slot, or by removing the offer).

Referring again to FIG. 4, two of the options that may be implemented byone or more embodiments of the invention to complete the advertisementinsertion process are described. Under Option A, proxy 402 determineswhether to insert a local advertisement at step 506. This determinationmay include replacing the advertisement block (unless such replacementis restricted by web server 404) forwarded from the web server 404.Further, the determination may be based on the demographic profileinformation stored by proxy 402. As described above, the specificadvertisement or type of advertisement to be inserted or anyadvertisement restrictions may be specified by web server 404.Additionally, under Option A, upon receipt of a web page withoutadvertisements, proxy 402 may negotiate (in real time) with web server404 for the insertion of an advertisement. Such a negotiation mayinclude proxy 402 specifying the amount it is willing to pay web server404 for an advertisement insertion. Subsequently, proxy 402 may insertan advertisement that proxy 402 has stored in cache or may request thetransmission of an advertisement block from the web server for theadvertiser 406. However, if an advertisement is to be inserted fromcache, proxy 402 must determine whether such cached advertisement isvalid. For example, proxy 402 may not be able to insert a cachedadvertisement based on a preexisting agreement that only allowsadvertisements to be inserted on a per request basis or the time limitfor a particular advertisement may have expired. Whether a cachedadvertisement is valid may be specified in the tag fields discussed indetail below. At step 512, proxy 402 transmits the web page text and anyassociated advertisement to client 400.

Under Option B, at step 508, proxy 402 forwards demographic information,costs, and other information to the web server for the advertiser 406.At step 510, the web server for the advertiser 406 determines theadvertisement to insert. As described above, the determination mayinclude an evaluation of the demographic material by web server 406 sothat a targeted advertisement may be inserted. Web server 406 may alsoevaluate the associated costs for the advertisement. At step 510, webserver 406 forwards the selected advertisement, if any, to proxy 402. Atstep 512, proxy 402 inserts the advertisement and forwards the web pagetext and local advertisement to client 400.

Alternatively, a URL transmission may pass through multiple proxies(e.g., four or five). In such a situation, is response to a URL request,web server 404 may reply (as described above) with an emptyadvertisement slot, and require a five cent payment if the slot isutilized (a URL from which the advertisement should be fetched if notinserted by proxy 402 may also be provided). The proxies on the pathfrom server 404 to client 400 may elect to (a) pass the request to thenext proxy, (b) perform a local insertion (accepting the specifiedprice), or (c) increasing the price of the insertion and changing theURL that the advertisement is to be fetched from (if further proxieselect not to perform a local insertion). Thus, advertisements andadvertisement slots may be sold by one proxy to another proxy or oneentity to another entity.

For example, the first proxy (on the path from server 404 to client 400)may determine that the slot is worth six cents and raise the price ofthe advertisement insertion (the first proxy may also replace thealternative advertisement URL). The second proxy may elect not toperform a local advertisement insertion because the price is too high.The third proxy may elect to increase the price to eight cents and againreplaces the alternative advertisement URL. Remaining proxies may thendecline local advertisement insertion. In such a situation, the localadvertisement will be retrieved from the URL specified by the thirdproxy. Thus, the third proxy provides six cents to the first proxy, whopockets one cent (six cents minus five cents) and the first proxy paysthe web site five cents.

By evaluating demographic and profile information as described, directmarketing advertisers and one-on-one advertisers may more accuratelytarget specific individuals. Further, the ISP 402 (and other proxies)benefits (by selling advertising space and utilizing its collectedprofile and other information), web server 404 benefits (by selling moreadvertising space regardless of whether web server 404 is small orlarge), advertiser 406 benefits by accurate targeting (resulting in anincreased probability of a click-through), and client 400 benefits byreceiving advertisements that the client may be particularly interestedin. Additionally, if client 400 does not want its information releasedor collected, client 400 may enter into a contract with ISP 402restricting the use, distribution, or collection of such information orutilize an ISP 402 that does not maintain demographic databases or userprofiles.

The above embodiments may or may not utilize the information stored inthe proxy's cache. For example, the proxy may negotiate a price for acertain number of page uses or advertisement inserts. Thus, the proxy'scache can be utilized for the specific number of advertisementsnegotiated. Alternatively, an advertisement may be identified to bedisplayed to one end user. If another user requests the same page, theproxy can issue a conditional “get” request from the server. The servercan then respond with a new price structure for the advertisement orwith updated values for the various parameters. Using this approach,user-specific pricing is available without downloading the sameadvertisement or web page content repetitively. In one or morealternative embodiments, the proxy and server utilize a common useridentification system to set advertisement selection and prices. Forexample, the server could identify a set of cookies or profile detailsfor which it is willing to pay a specific price (e.g., 5 cents perdisplay for a medium size slot). As a result, whenever the proxyintercepts a request from a user that matches the cookie or profiledetails, the proxy can elect whether or not to insert the advertisementfor the server's set price.

Advertisement Tags

To specify advertisement characteristics, advertisement tag(s) may bespecified in the HTML. The server could specify a tag or tag combination(e.g., a <A> . . . </A> block that follows one of the tags describedbelow. Alternatively, the proxy could make an educated guess regardingthe statistics using a new tag or based on a <A> . . . <IMG . . .> </A>tag combination (along with a database of substrings to match) forexample. Different characteristics may be specified as part of one tagor multiple tags. An ADSIZE tag may specify one or more of the standarddefined sizes (e.g., half size or full size) for banner advertisementsor the dimensions of the “slot” for the advertising banner.

An ADPOSITION/ADLOCATION tag may specify the location for a particularadvertisement on a web page (e.g., position 8 or 3 inches from top and 1inch from left side of web page) and may be used in conjunction with anADSIZE tag.

An ADPRICE tag may specify the cost for placing the advertisement. Thecost may be based on the size of the banner (e.g., half 5.2 full 3.4) ormay be based on a prior relationship between the advertising agency andthe proxy (e.g., based on a click through, referral commission, or thedemographic information supplied by the proxy). Additionally, theADPRICE tag may specify a particular currency, specify multiplealternative pricing schemes, or specify an additional cost if theadvertiser desires to maintain exclusivity for the web site (e.g., ifthe advertiser desires only advertisements for a specific car brand(e.g., Toyota) to appear on a web site, a premium or additional cost maybe assessed). Alternatively, the ADPRICE tag may be utilized by anadvertiser to notify the proxy what it is willing to pay for a specificadvertisement.

An ADRESTRICT tag may specify the categories/types of advertisements toallow/deny. For example, a religious web site may desire to exclude anyadvertisements for pornographic web sites or to only allowadvertisements for books.

An ADDEMOGRAPHIC tag may specify demographic information about the userthat the advertisement will be presented to. Such a tag may be utilizedin connection with one or more embodiments described in connection withFIG. 4c above. For example, the age, credit history, salary, interests,prior purchases, prior web sites accessed, web search conducted,shopping information, or time spent on a particular web site (which isonly known by the ISP or proxy) may be specified. Alternatively, theADDEMOGRAPHIC tag may be used in conjunction with the ADPRICE tag by theadvertiser to inform the proxy what the advertiser is willing to pay fora specific advertisement displayed to a particular user with specifieddemographic information. For example, the advertiser may specify thathe/she will pay 10 cents for a mortgage advertisement displayed to afirst time home buyer and 5 cents for a mortgage advertisement displayedto an existing home owner.

In addition to the above tags or in conjunction with the above tags, anadditional LOCALAD_NEGOTIATION tag or bits may be used to identify thenegotiation process. For example, one part of the LOCALAD_NEGOTIATIONtag may specify that web server 404 is open to negotiations to determinethe cost for a local advertisement insertion. Another part of theLOCALAD_NEGOTIATION tag may specify the maximum negotiation that ispermissible (to limit the web page transmission time to a waiting client400). For example, the maximum negotiation may be a unit of time such as10 seconds or a number of transmissions that occur between proxy 402 andweb server 404, e.g., 4 transmissions.

An IMG directive may also be utilized to specify information about theimage to be displayed (that may contain the advertisement) along withthe advertisement slot characteristics. For example, the tag <IMGSRC=ad-image.gif WIDTH=40 HEIGHT=60 PRICE=34> provides for an imagenamed ad-image.gif with a width of 40, a height of 60 and an addedadvertisement price field with a value of 34.

Alternatively, instead of specifying the above information in the formof an HTML tag, the information may be specified as part of the URLrequest that is provided to the advertiser or as part of the datastream. For example, the server may specify that the advertisement slotin the HTML is transmitted as characters or bytes 55 to 75 of the datastream.

Auditing and Cross Verification System

Once advertisements have been displayed to a user, the advertiser willpay the agreed upon amount to the advertising agency, proxy, or webhost. Since hit count numbers and click-through numbers may be inflated,a system for auditing and verifying that an advertisement was actuallydisplayed to a user is desirable. Additionally, in a situation where theISP maintains a contract directly with the advertiser (i.e., the ISPpays the web host (with money received from the advertiser) foradvertisement space), the web host may desire to verify the amount paidby the advertiser to the ISP. Such verification may be performed by athird party such as an independent auditor.

Referring to FIGS. 4a-4 c, logs containing information regarding alltransmissions are maintained by proxy 402, web server 404, and webserver 406. Such logs may have to be maintained at the request of theadvertiser. For example, the logs may maintain a unique connectionidentifier such as the time, the advertisement inserted (if any), andthe 4-tuple (src IP address (source IP address), src port (port numberof the source), dest IP address (destination IP address), dest port(port number of the destination). Consequently, web server 404 maintainsinformation regarding the number, type, and timing of URL requests thatit receives and transmits to proxy 402. Similarly, proxy 402 maintainsinformation regarding the number, type, and timing of advertisements ittransmits to client 400.

Client 400 may be uniquely identified from other clients at any onepoint in time using various methods. For example, the IP address or portnumber may be a unique number assigned to client 400. However, sincemultiple family members may use the same computer with the same IPaddress or port number, a user's login name, or the user's login nameconcatenated with the IP address or port number may be utilized tounique identify a client 400 from other clients and to differentiatebetween family members (the assigned IP address may also be mapped to aunique user identifier). The user can also be identified by the cookiesthat the user transmits to web sites. Alternatively, a group of usersmay be identifiable. For example, the ISP may assign a block of users touse the same proxy which may then be utilized to identify the aggregateof users. Consequently, based on the information, the advertiser mayrestrict the proxy to only insert advertisements on pages from chosenweb sites, if desired.

To verify the number of advertisements actually displayed to client 400,the URL request from a particular client 400 at a particular time (andthe resulting transmission) stored in the log of web server 404 may becross-checked with the transmission of the advertisement (and the webpage from web server 404) to a particular client at a particular timestored in the log of proxy 402. By cross checking and comparing theinformation from the log of web server 404 and from the log of proxy402, the advertiser may determine whether an advertisement was actuallydisplayed and the web host 404 may calculate the amount of money itexpects to receive. The advertiser may also limit the cross checking tothe larger web sites to attempt to determine how many transmissionsoccur with a particular ISP (to determine if the number of paidadvertisements matches the number of transmissions). Additionally, theadvertiser may confirm and cross check the amount of money that the webserver receives from advertising.

Additionally, the advertiser can obtain the hit-count information fromdifferent sets of content-providers (web servers) as well as differentsets of proxies (with each hit equaling a content-provider providing apage to one proxy that substitutes the advertisement). Cross-referencingmay then be performed to check whether each proxy is behaving within theindustry norm for all proxies for that particular advertisement beingserved (from that particular server or in general from all servers).This industry norm can be more accurately determined using a samplingauditing scheme. In a sampling scheme, the proxy may be informed that noadvertisements are available or that the pages are non-cacheable (for asubset of page views). The advertisement hit-rate (and repeat rate) isthen obtained. The proxy's claims regarding the hit-rate and repeat-rateare then statistically examined to determine if the rates are likely ornot.

The cross-checking as indicated above may also be placed into aspreadsheet or database that maintains the information regarding thenumber of mismatches. Based on the number or percentage of mismatches,additional action by web server 404 or the advertiser may be taken(e.g., canceling a contract or punishing the relevant party). Forexample, if web server 404 learns that it is only receiving payment for10% of the advertisements being displayed, web server 404 may cancel thecontract with the ISP 402 inserting the advertisements or cancel thecontract with the advertiser. Alternatively, web server 404 may punishISP 402 by increasing the advertisement cost by 10% for anyadvertisements inserted by ISP 402. Similarly, if the advertiser learnsthat there are 5% mismatches, the advertiser may pay 5% less to ISP 402or web server 404. As a result of the ability to cross check theinformation maintained by the various entities (e.g., client 400, ISP402, and web server 404), two or more parties would have to conspiretogether to defraud a third party of profits. In the prior art, suchcollusion was not necessary (i.e., one party alone could defraud anotherof profits because no cross verification system was available).

Verification is also needed to determine if the demographics supplied bythe ISP are accurate. Such verification is particularly useful when thecost of the advertisement is dependent on the demographics (e.g., aMercedes or Jaguar advertiser may pay more if the client lives in awealthy area). This verification may be performed by independentauditors that examine, test, and evaluate the demographic system (i.e.,the computer software used to implement the Online Profile ManagementSystem 300 of FIG. 3) and the profile maintained by the ISP todetermine. The independent auditors evaluate and test the software todetermine if the method for obtaining and determining the information,and inserting a particular advertisement is reliable.

Thus, a method and apparatus for local advertising on the internet isdescribed in conjunction with one or more specific embodiments. Theinvention is defined by the claims and their full scope of equivalents.

What is claimed is:
 1. A method of advertising using a computer systemcomprising: obtaining at least one user request at an Internet ServiceProvider from a known user of said Internet Service Provider, whereinsaid known user is a client of said Internet Service Provider; obtaininginformation to be displayed to said known user from a first source,wherein said information to be displayed comprises information obtainedin response to said at least one user request; maintaining a history ofall said information obtained in response to said at least one userrequest by said known user; developing profile information relating tosaid known user from said history of all said information obtained inresponse to said at least one user request; obtaining a firstadvertisement from said first source; associating said firstadvertisement with said information to be displayed, wherein saidassociating said first advertisement is performed by said InternetService Provider; transmitting said information to be displayed to saidknown user; transmitting said first advertisement to an advertisementslot of said known user; said Internet Service Provider using saidprofile information for negotiating a cost for and selling saidadvertisement slot for at least one second advertisement to a secondsource without intervention from said known user; said Internet ServiceProvider obtaining said at least one second advertisement from saidsecond source; associating said at least one second advertisement withsaid information to be displayed, wherein said associating said at leastone second advertisement is performed by said Internet Service Provider;transmitting said at least one second advertisement to saidadvertisement slot.
 2. The method of claim 1 wherein said information tobe displayed is a web page.
 3. The method of claim 2 wherein saidassociating said at least one second advertisement with said informationfurther comprises said Internet Service Provider initiating saidnegotiation for a cost for associating said at least one secondadvertisement with said information.
 4. The method of claim 2 furthercomprising a web server initiating said negotiation for a cost forassociating said at least one second advertisement with saidinformation.
 5. The method of claim 2 wherein said advertisement slot isidentified by an HTML tag.
 6. The method of claim 2 wherein said profileinformation comprises information regarding web pages displayed to saidclient.
 7. The method of claim 6 wherein said profile informationindicates an interest in a competitor of a topic of said secondadvertisement.
 8. The method of claim 2 wherein said profile informationcomprises demographic information of said client.
 9. The method of claim2 wherein said profile information comprises personal information ofsaid client.
 10. The method of claim 2 wherein said profile informationcomprises network accesses of said client.
 11. The method of claim 2wherein said obtaining said at least one second advertisement is basedon information comprising a mapping of profile information to anadvertisement.
 12. The method of claim 2 wherein a client contains saidadvertisement slot.
 13. The method of claim 12 further comprisingverifying that said second advertisement was transmitted to said client.14. The method of claim 13 wherein said verifying step is by sampling.15. the method of claim 13 wherein said verifying step comprisescomparing a server's log to said Internet Service Provider's log. 16.The method of claim 2 further comprising: obtaining an IP address andport number; mapping said IP address and port number to a unique useridentifier; and utilizing said unique user identifier to map saidprofile information to a specific client.
 17. the method of claim 1further comprising obtaining said at least one second advertisement froman advertiser.
 18. The method of claim 1 wherein said at least onesecond advertisement is stored in cache.
 19. The method of claim 1wherein said cost is based on a size of said advertisement.
 20. Themethod of claim 1 wherein said cost is based on a location of saidadvertisement slot.
 21. The method of claim 1 wherein said cost is basedon a number of advertisements to be inserted.
 22. The method of claim 1wherein said cost is based on whether additional advertisements are tobe displayed.
 23. The method of claim 1 wherein said advertisement isassociated with said information to be displayed based on a cost of saidadvertisement.
 24. The method of claim 1 wherein said profileinformation comprises a time period that each of said information to bedisplayed is displayed.
 25. The method of claim 1 further comprisingmaintaining said profile information transparent to said user.
 26. Themethod of claim 1 wherein said profile information comprises userbehavior patterns.
 27. The method of claim 26 further comprisingderiving said user behavior patterns from said at least one userrequest.
 28. A method of advertising using a computer system comprising:obtaining at least one user request at an Internet Service Provider froma known user of said Internet Service Provider, wherein said known useris a client of said Internet Service Provider; obtaining information tobe displayed from a first source, wherein said information to bedisplayed comprises information obtained in response to said at leastone user request, and wherein said information further comprisesidentification of a location for displaying at least one advertisement;developing profile information related to said at least one user requestfrom information relating to said known user maintained by said InternetService Provider; obtaining a first advertisement from said firstsource; associating said first advertisement with said information to bedisplayed, wherein said associating said first advertisement isperformed by said Internet Service Provider, and wherein saidassociating said first advertisement further comprises inserting saidfirst advertisement into said location; transmitting said information tobe displayed; transmitting said first advertisement; displaying saidinformation to be displayed; displaying said first advertisement in saidlocation; said Internet Service Provider using said profile informationfor negotiating a cost and for selling said location for at least onesecond advertisement with said information to be displayed to a secondsource without intervention from said known user; said Internet ServiceProvider obtaining said at least one second advertisement from saidsecond source; associating said at least one second advertisement withsaid information to be displayed, wherein said associating said at leastone second advertisement is performed by said Internet Service Provider,and wherein said associating said at least one second advertisementfurther comprises inserting said second advertisement into saidlocation; transmitting said second advertisement; and displaying saidsecond advertisement in said location.
 29. The method of claim 28wherein said information to be displayed is a web page.
 30. The methodof claim 29 wherein said second source is said Internet ServiceProvider.
 31. The method of claim 29 further comprising said InternetService Provider initiating said negotiation for a cost for associatingsaid advertisement.
 32. The method of claim 29 further comprising a webserver initiating said negotiation for a cost for associating saidadvertisement.
 33. The method of claim 29 wherein said location fordisplaying said advertisement is identified by an HTML tag.
 34. Themethod of claim 29 wherein said profile information comprisesinformation regarding web pages displayed to said client.
 35. The methodof claim 34 wherein said profile information indicates an interest in acompetitor of a topic of said advertisement.
 36. The method of claim 29wherein said profile information comprises demographic information ofsaid client.
 37. The method of claim 29 wherein said profile informationcomprises personal information of said client.
 38. The method of claim29 wherein said profile information comprises network accesses of saidclient.
 39. The method of claim 29 wherein said obtaining saidadvertisement is based on information comprising a mapping of profileinformation to an advertisement.
 40. The method of claim 29 wherein aclient contains said advertisement slot.
 41. The method of claim 40further comprising verifying that said advertisement was transmitted tosaid client.
 42. The method of claim 41 wherein said verifying step isby sampling.
 43. The method of claim 41 wherein said verifying stepcomprises comparing a server's log to a log of said proxy.
 44. Themethod of claim 29 further comprising: obtaining an IP address and portnumber; mapping said IP address and port number to a unique useridentifier; and utilizing said unique user identifier to map saidprofile information to a specific client.
 45. The method of claim 28wherein said second source is an advertiser.
 46. The method of claim 28wherein said advertisement is stored in cache.
 47. The method of claim28 wherein said cost is based on a size of said advertisement.
 48. Themethod of claim 28 wherein said cost is based on a location of saidavailable space.
 49. The method of claim 28 wherein said cost is basedon a number of advertisements to be inserted.
 50. The method of claim 28wherein said cost is based on whether additional advertisements are tobe displayed.
 51. The method of claim 28 wherein said advertisement isassociated based on a cost of said advertisement.
 52. A systemcomprising: a processor; a memory coupled to said processor; codeexecuted by said processor, wherein said code is configured to transmitadvertisements; said code, when executed by said processor, performs thesteps of: obtaining at least one user request at a Internet ServiceProvider from a known user of said Internet Service Provider, whereinsaid known user is a client of said Internet Service Provider; obtaininginformation to be displayed to said known user from a first source,wherein said information to be displayed comprises information obtainedin response to said at least one user request; developing profileinformation related to said at least one user request from informationrelating to said known user maintained by said Internet ServiceProvider; obtaining a first advertisement from said first source;associating said first advertisement with said information to bedisplayed, wherein said associating said first advertisement isperformed by said Internet Service Provider; transmitting saidinformation to be displayed; transmitting said first advertisement to anadvertisement slot; said Internet Service Provider using said profileinformation for negotiating a cost and selling said advertisement slotfor at least one second advertisement to a second source withoutintervention from said known user; said Internet Service Providerobtaining said at least one second advertisement from said secondsource, wherein said at least one second advertisement is based on saidprofile information; associating said at least one second advertisementwith said information to be displayed, wherein said method ofassociating said at least one second advertisement is performed by saidInternet Service Provider; and transmitting said at least one secondadvertisement to said advertisement slot.
 53. The system of claim 52wherein said information to be displayed is a web page.
 54. The systemof claim 53, wherein a client contains said advertisement slot.
 55. Themethod of claim 52 wherein said profile information comprises a timeperiod that each of said information to be displayed is displayed. 56.The method of claim 52 further comprising maintaining said profileinformation transparent to said user.
 57. The method of claim 52 whereinsaid profile information comprises user behavior patterns.
 58. Themethod of claim 67 further comprising deriving said user behaviorpatterns from said at least one user request.
 59. A system comprising: aprocessor; a memory coupled to said processor; code executed by saidprocessor, wherein said code is configured to transmit advertisements;said code, when executed by said processor, performs the steps of:obtaining at least one user request at a Internet Service Provider froma known user of said Internet Service Provider, wherein said known useris a client of said Internet Service Provider; obtaining information tobe displayed from a first source, wherein said information to bedisplayed to said known user comprises information obtained in responseto said at least one user request, and wherein said information furthercomprises identification of a location for displaying at least oneadvertisement; developing profile information related to said at leastone user request from information relating to said known user maintainedby said Internet Service Provider; obtaining a first advertisement fromsaid first source; associating said first advertisement with saidinformation to be displayed, wherein said associating said firstadvertisement is performed by said Internet Service Provider, andwherein said associating said first advertisement further comprisesinserting said first advertisement into said location; transmitting saidinformation to be displayed; transmitting said first advertisement to anadvertisement slot; displaying said information to be displayed;displaying said first advertisement in said location; said InternetService Provider using said profile information for negotiating a costfor and selling said advertisement slot for at least one secondadvertisement to a second source without intervention from said knownuser; said Internet Service Provider obtaining said at least one secondadvertisement from said second source, wherein said at least one secondadvertisement is based on said profile information; associating said atleast one second advertisement with said information to be displayed,wherein said method of associating said at least one secondadvertisement is performed by said Internet Service Provider, andwherein said method of associating said at least one secondadvertisement further comprises inserting said second advertisement intosaid location; transmitting said at least one second advertisement tosaid advertisement slot; and displaying said second advertisement insaid location.
 60. The system of claim 59 wherein said information to bedisplayed is a web page.
 61. The system of claim 57, wherein a clientcontains said advertisement slot.
 62. A computer program productcomprising: a computer usable medium having computer readable programcode embodied therein configured to advertise, said computer programproduct comprising: computer executable code configured to cause acomputer to obtain at least one user request at a Internet ServiceProvider from a known user of said Internet Service Provider, whereinsaid known user is a client of said Internet Service Provider; computerexecutable code configured to cause a computer to obtain information tobe displayed to said known user from a first source, wherein saidinformation to be displayed comprises information obtained in responseto said at least one user request; computer executable code configuredto cause a computer to develop profile information related to said atleast one user request from information relating to said known usermaintained by said Internet Service Provider; computer readable codeconfigured to cause a computer to obtain a first advertisement; computerexecutable code configured to cause a computer to associate said firstadvertisement with said information to be displayed, wherein saidassociation of said first advertisement is performed by said InternetService Provider; computer executable code configured to cause acomputer to transmit said information to be displayed; computerexecutable code configured to cause a computer to transmit said firstadvertisement to an advertisement slot; computer executable codeconfigured to cause said Internet Service Provider to use said profileinformation to negotiate a cost for and selling said advertisement slotfor at least one second advertisement to a second source withoutintervention from said known user; computer executable code configuredto cause said Internet Service Provider to obtain said at least onesecond advertisement from said second source, wherein said at least onesecond advertisement is based on said profile information; computerexecutable code configured to cause a computer to associate said atleast one second advertisement with said information to be displayed,wherein said association of said at least one second advertisement isperformed by said Internet Service Provider; and computer executablecode configured to cause a computer to transmit said at least one secondadvertisement to said advertisement slot.
 63. The computer programproduct of claim 62 wherein said information to be displayed is a webpage.
 64. The computer program product of claim 63, further comprisingcomputer readable code configured to cause a computer to provide saidinformation to be displayed and said second advertisement to a client.65. The method of claim 62 wherein said profile information comprises atime period that said information to be displayed is displayed.
 66. Themethod of claim 62 further comprising maintaining said profileinformation transparent to said user.
 67. The method of claim 62 whereinsaid profile information comprises user behavior patterns.
 68. Themethod of claim 67 further comprising deriving said user behaviorpatterns from said at least one user request.
 69. A computer programproduct comprising: a computer usable medium having computer readableprogram code embodied therein configured to advertise, said computerprogram product comprising: computer executable code configured to causea computer to obtain at least one user request at a Internet ServiceProvider from a known user of said Internet Service Provider, whereinsaid known user is a client of said Internet Service Provider; computerexecutable code configured to cause a computer to obtain information tobe displayed to said known user from a first source, wherein saidinformation to be displayed comprises information obtained in responseto said at least one user request, and wherein said information furthercomprises identification of a location for displaying at least oneadvertisement; computer executable code configured to cause a computerto develop profile information related to said at least one user requestfrom information relating to said known user maintained by said InternetService Provider; computer executable code configured to cause acomputer to obtain a first advertisement from said first source;computer executable code configured to cause a computer to associatesaid first advertisement with said information to be displayed, whereinsaid association of said first advertisement is performed by saidInternet Service Provider, and wherein said association of said firstadvertisement further comprises inserting said first advertisement intosaid location; computer executable code configured to cause a computerto transmit said information to be displayed; computer executable codeconfigured to cause a computer to transmit said first advertisement toan advertisement slot; computer executable code configured to cause acomputer to display said information to be displayed; computerexecutable code configured to cause a computer to display said firstadvertisement in said location; computer executable code configured tocause said Internet Service Provider to use said profile information tonegotiate a cost for and selling said location for at least one secondadvertisement to a second source without intervention from said knownuser; computer executable code configured to cause said Internet ServiceProvider to obtain said at least one second advertisement from saidsecond source, wherein said at least one second advertisement is basedon said profile information; computer executable code configured tocause a computer to associate said at least one second advertisementwith said information to be displayed, wherein said association of saidat least one second advertisement is performed by said Internet ServiceProvider, and wherein said association of said at least one secondadvertisement further comprises inserting said second advertisement intosaid location; computer executable code configured to cause a computerto transmit said at least one second advertisement to said advertisementslot; and computer readable code configured to cause a computer todisplay said second advertisement in said location.
 70. The computerprogram product of claim 69 wherein said information to be displayed isa web page.